// --------------------------------------------------------------------------------------------------------------------
// <copyright file="AssertionConditionType.cs" company="CSLib.Net Team">
//   Copyright (c) Roman "4ux-nbIx" Novitsky 2010
// </copyright>
// <summary>
//   Specifies assertion type. If the assertion method argument satisifes the condition, then the execution continues.
//   Otherwise, execution is assumed to be halted.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace CSLib.Net.Annotations
{
  #region Namespace Imports

  using System.Diagnostics.CodeAnalysis;

  #endregion


  /// <summary>
  /// Specifies assertion type. If the assertion method argument satisfies the condition, then the execution continues. 
  /// Otherwise, execution is assumed to be halted.
  /// </summary>
  public enum AssertionConditionType
  {
    /// <summary>
    /// Indicates that the marked parameter should be evaluated to true.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", 
      Justification = "Not sure whether it is possible.")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "TRUE", 
      Justification = "Not sure whether it is possible.")]
    IS_TRUE = 0, 

    /// <summary>
    /// Indicates that the marked parameter should be evaluated to false.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", 
      Justification = "Not sure whether it is possible.")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "FALSE", 
      Justification = "Not sure whether it is possible.")]
    IS_FALSE = 1, 

    /// <summary>
    /// Indicates that the marked parameter should be evaluated to null value.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", 
      Justification = "Not sure whether it is possible.")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "NULL", 
      Justification = "Not sure whether it is possible.")]
    IS_NULL = 2, 

    /// <summary>
    /// Indicates that the marked parameter should be evaluated to not null value.
    /// </summary>
    [SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", 
      Justification = "Not sure whether it is possible.")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "NULL", 
      Justification = "Not sure whether it is possible.")]
    [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "NOT", 
      Justification = "Not sure whether it is possible.")]
    IS_NOT_NULL = 3, 
  }
}